Today, many large-scale online application services including content management services, content collaboration services, social networking services, and other types of application services have end-users distributed around the globe. Applications provided by these services may be hosted in a few, relatively centralized data centers. A data center may encompass a physical hosting facility or building in which server computers (e.g., HTTP/S servers) and other networked computing devices are co-located together to provide one or more application services to end-users. For example, a large-scale application service may have tens or even hundreds of millions of end-users across the world, yet applications provided by the application service may be hosted in a few data centers located in North America.
An end-user's satisfaction with an application service generally decreases as response times increase. Accordingly, it is a general goal of an application service provider to process, as quickly as possible, application-layer request messages (e.g., HTTP/S request messages) sent from end-user computing devices. Such processing may include determining and obtaining the information requested by the application-layer request message to be sent back to the requesting end-user computing device in one or more application-layer response messages.
A possible approach towards meeting the goal of minimum response time is to route the application-layer request messages to the data center that is closest in terms of geographic proximity to the end user's computing device. This strategy follows from the general principle that the cost of network communication between two computers generally increases as the physical distance between the two computers increases. For example, if an application service operates two data centers, one in San Jose, Calif., USA and another in Arlington, Va., USA, then most application-layer request messages from end-users in Hong Kong may be routed to the data center in San Jose, Calif. which is geographically closer to those users than Arlington, Va.
Routing of application-layer network request messages from end-user computing devices to data centers may be accomplished based on predefined application-layer routing configuration at geographically distributed points-of-presence provisioned at the edge of the application service provider's network. The points-of-presence may include a number of co-located server computers (e.g., HTTP/S servers) and other networked computing devices that the application service provider may provision in various geographic regions to provide a more local access point to the application service provider's network for end-users in a region relative to the data centers. In addition, a point-of-presence may be used to move some application processing and application data serving performed in the data centers closer to the end-users in the region, thereby improving the responsiveness of the application service for the end-users.
Conventionally, the predefined application-layer routing configuration at points-of-presence for routing application-layer request messages to data centers is statically configured and maintained manually by human network administrators of the application service provider. This static configuration and manual maintenance does not scale well with more points-of-presence, more end-users, and dynamic network conditions. Thus, application service providers would appreciate techniques that address the issues associated with the static configuration and the manual maintenance of application-layer routing configuration at points-of-presence in the application service provider's network.
The present invention addresses this and other issues.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.